package com.cleaningcloud.cld.domain;

import com.cleaningcloud.common.core.annotation.Excel;
import com.cleaningcloud.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 薪酬管理对象 cld_pay_details
 *
 * @author cleaningcloud
 * @date 2024-11-08
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class CldPayDetails extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 薪酬明细ID
     */
    private Long payDetailsId;

    /**
     * 项目ID
     */
    @Excel(name = "项目ID")
    private Long projectId;

    /**
     * 年份
     */
    @Excel(name = "年份")
    private Integer year;

    /**
     * 月份
     */
    @Excel(name = "月份")
    private Integer month;

    /**
     * 日
     */
    @Excel(name = "日")
    private Integer day;

    /**
     * 员工ID
     */
    @Excel(name = "员工ID")
    private Long staffId;

    /**
     * 薪酬类型(1基本工资,2绩效津贴,3福利津贴.4加班工资,5奖惩金额,6保险费用,7工服费用,8培训费用,9招聘费用)
     */
    @Excel(name = "薪酬类型(1基本工资,2绩效津贴,3福利津贴.4加班工资,5奖惩金额,6保险费用,7工服费用,8培训费用,9招聘费用,10工作计划扣款)")
    private Long payType;

    /**
     * 涉及金额
     */
    @Excel(name = "涉及金额")
    private BigDecimal money;

    // 完整金额
    private BigDecimal fullAmount;

    /**
     * 产生时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "产生时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date produceTime;

    /**
     * 项目岗位ID
     */
    @Excel(name = "项目岗位ID")
    private Long projectPostId;

    /**
     * 1加2减
     */
    @Excel(name = "1加2减")
    private Long isAlgorithm;

    /**
     * 业务ID(如：福利表ID,奖惩表ID,绩效考核表ID,加班ID等)
     */
    @Excel(name = "业务ID(如：福利表ID,奖惩表ID,绩效考核表ID,加班ID等)")
    private Long businessId;


    //新增映射字段
    //员工姓名
    private String staffName;
    //员工状态
    private int staffStatus;
    //岗位Id
    private Long projectPostName;
    //岗位编号
    private String projectPostNo;
    //岗位工资
    private BigDecimal postWages;
    //职务
    private Long projectDuitsName;
    //组名称
    private String groupName;
}
